django |
您所在的位置:网站首页 › django model foreignkey › django |
Я пытаюсь использовать autocomplete_light и taggit как в форме администратора. Я прочитал документацию по интеграции подсветки автозаполнения и taggit здесь, а также документацию по интеграции подсветки автозаполнения в админку здесь. Но, похоже, мало (или совсем нет) дискуссий о том, чтобы делать и то, и другое одновременно. Что у меня есть до сих пор. В models.py: from django.db import models from taggit.managers import TaggableManager from taggit.models import TagBase, GenericTaggedItemBase class MyTag(TagBase): description = models.CharField(max_length = 250, blank = True, null = True) class MyTagThroughModel(GenericTaggedItemBase): tag = models.ForeignKey(MyTag, related_name = "tagged_items") class MyModel(models.Model): Name = models.CharField(max_length = 200) ... tags = TaggableManager(through = MyTagThroughModel)В autocomplete_light_registry.py: import autocomplete_light from models import MyTag autocomplete_light.register(MyTag)Как я должен структурировать admin.py? Если это не администраторская форма, поле будет иметь следующий вид: tags = TagField(widget = TagWidget('MyTagAutocomplete'))Если бы это была форма администратора без тегов git, я бы добавил в класс модели администратора следующее: form = autocomplete_light.modelform_factory(MyTag)Как я могу совместить два? django django-admin django-taggit django-autocomplete-light 4 Luke 10 Янв 2014 в 23:09 2 ответа Лучший ответКак мне структурировать admin.py? Вот пример автозаполнения тегов. Он показывает, как autocomplete_light и taggit работают в административных и неадминистративных формах. models.py from django.db import models from taggit.managers import TaggableManager class MyModel(models.Model): name = models.CharField(max_length = 200) tags = TaggableManager(blank=True)autocomplete_light_registry.py import autocomplete_light from taggit.models import Tag autocomplete_light.register(Tag)forms.py from django import forms import autocomplete_light from autocomplete_light.contrib import taggit_tagfield from models import MyModel class MyModelForm(forms.ModelForm): tags = taggit_tagfield.TagField(widget=taggit_tagfield.TagWidget('TagAutocomplete')) class Meta: model = MyModel widgets = { 'tags': autocomplete_light.TextWidget('TagAutocomplete'), }admin.py from django.contrib import admin import autocomplete_light from models import MyModel from forms import MyModelForm class MyModelAdmin(admin.ModelAdmin): form = MyModelForm model = MyModel admin.site.register(MyModel, MyModelAdmin)views.py from django.views.generic.edit import CreateView from models import MyModel from forms import MyModelForm class CreateMyModel(CreateView): model = MyModel form_class = MyModelFormurls.py from django.conf.urls import patterns, url from views import CreateMyModel urlpatterns = patterns('', url(r'^create/$', CreateMyModel.as_view()), )быстрые документы кажутся более понятными, чем документы вы смотрели. 5 sebastian 14 Янв 2014 в 12:14Вместо этого рассмотрите возможность использования django-taggit-autosuggest. . Лучше всего он работает с оболочкой администратора django-grapelli. 3 Pranab 5 Апр 2016 в 10:25 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |